#include <iostream>
#include "fstream"

using namespace std;

/*
 * 二进制文件读写
 */

class Person
{
public:
    char p_Name[64];  // 写文件中最好使用char类型，string容易出错
    int p_Age;
};

void test01(){
    //1、导入头文件
    //2、创建流对象
    ofstream ofs;
    //3、打开文件
    ofs.open("person.txt", ios::out | ios::binary);
    //4、写入数据
    Person p = {"张三", 18};
    ofs.write((const char *)&p, sizeof(p));
    //5、关闭文件
    ofs.close();
}

void test02(){
    //1、导入头文件
    //2、创建流对象
    ifstream ifs;
    //3、打开文件
    ifs.open("person.txt", ios::in | ios::binary);
    // 判断文件打开是否成功
    if(!ifs.is_open()){
        cout << "文件打开失败！" << endl;
        return;
    }
    //4、读数据
    Person p;
    ifs.read((char *)&p, sizeof(p));

    cout << "姓名：" << p.p_Name <<", 年龄：" << p.p_Age << endl;
    //5、关闭文件
    ifs.close();
}

int main() {

//    test01();
    test02();

    return 0;
}
